/**
 * Model class for V$AGN_CASE_DETAILS_QCMS
 */
package com.allergan.model;

import java.sql.Date;

import javax.persistence.Entity;
import javax.persistence.Column;
import javax.persistence.Table;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

@Entity
@Table(name = "V$AGN_CASE_DETAILS_QCMS")
public class AGNCaseDetail implements java.io.Serializable {

	/* Private fields */
	@Column(name = "CASE_NUM")
	private String caseNum;
	
	@Column(name = "LOT_NUM")
	private String lotNum;
	
	@Column(name = "SAMPLE_IND")
	private String sampleInd;
	
	@Column(name = "STATUS")
	private String status;
	
	@Column(name = "CASE_ID")
	private Integer caseId;
	
	@Column(name = "REQUEST_ID")
	private Integer requestId;
	
	@Column(name = "PRODUCT_NAME")
	private String productName;
	
	@Column(name = "LOT_EXP_DATE")
	private Date lotExpDate;
	
	@Column(name = "LISTEDNESS")
	private Integer listedness;
	
	@Column(name = "SERIOUSNESS")
	private Integer seriousness;
	
	@Column(name = "LAB_TEST_SITE")
	private String labTestSite;
	
	@Column(name = "LAB_TEST_SITE_NUM")
	private String labTestSiteNum;
	
	@Column(name = "INITIATOR_NAME")
	private String initiatorName;
	
	@Column(name = "INITIATOR_EMAIL")
	private String initiatorEmail;
	
	@Column(name = "INITIATOR_REASON")
	private String initiatorReason;
	
	@Column(name = "INITIATOR_DATE")
	private Date initiatorDate;
	
	@Column(name = "INITIATOR_NOTE")
	private String initiatorNote;
	
	@Column(name = "COMPLAINT_DESCR")
	private String complaintDescr;
	
	@Column(name = "STATUS_DATE")
	private Date statusDate;
	
	@Column(name = "STATUS_REASON")
	private String statusReason;
	
	@Column(name = "CUM_SPEC_RESULT")
	private String cumSpecResult;
	
	@Column(name = "EVENTS")
	private String events;
	
	@Column(name = "COUNTRY")
	private String country; 
	
	@Column(name = "INIT_REPT_DATE")
	private Date initReptDate; 
	
	@Column(name = "CLASSIFICATION")
	private String classification;
	
	@Column(name = "PRODUCT_ID")
	private Integer productId;
	
	@Column(name = "XNUMBER")
	private String xNumber;
	
	/**
	 *  Default Constructor
	 */
	public AGNCaseDetail() {
		
	}
	
	/**
	 * Parameterized Constructor
	 * @param caseNum
	 * @param lotNum
	 * @param sampleInd
	 * @param status
	 * @param caseId
	 * @param requestId
	 * @param productName
	 * @param lotExpDate
	 * @param listedness
	 * @param seriousness
	 * @param labTestSite
	 * @param labTestSiteNum
	 * @param initiatorName
	 * @param initiatorEmail
	 * @param initiatorReason
	 * @param initiatorDate
	 * @param initiatorNote
	 * @param complaintDescr
	 * @param statusDate
	 * @param statusReason
	 * @param cumSpecResult
	 * @param events
	 * @param country
	 * @param initReptDate
	 * @param classification
	 * @param productId
	 * @param xNumber
	 */
	public AGNCaseDetail(String caseNum, String lotNum, String sampleInd,
			String status, Integer caseId, Integer requestId,
			String productName, Date lotExpDate, Integer listedness,
			Integer seriousness, String labTestSite, String labTestSiteNum,
			String initiatorName, String initiatorEmail,
			String initiatorReason, Date initiatorDate, String initiatorNote,
			String complaintDescr, Date statusDate, String statusReason,
			String cumSpecResult, String events, String country,
			Date initReptDate, String classification, Integer productId,
			String xNumber) {
		super();
		this.caseNum = caseNum;
		this.lotNum = lotNum;
		this.sampleInd = sampleInd;
		this.status = status;
		this.caseId = caseId;
		this.requestId = requestId;
		this.productName = productName;
		this.lotExpDate = lotExpDate;
		this.listedness = listedness;
		this.seriousness = seriousness;
		this.labTestSite = labTestSite;
		this.labTestSiteNum = labTestSiteNum;
		this.initiatorName = initiatorName;
		this.initiatorEmail = initiatorEmail;
		this.initiatorReason = initiatorReason;
		this.initiatorDate = initiatorDate;
		this.initiatorNote = initiatorNote;
		this.complaintDescr = complaintDescr;
		this.statusDate = statusDate;
		this.statusReason = statusReason;
		this.cumSpecResult = cumSpecResult;
		this.events = events;
		this.country = country;
		this.initReptDate = initReptDate;
		this.classification = classification;
		this.productId = productId;
		this.xNumber = xNumber;
	}

	public String getCaseNum() {
		return caseNum;
	}

	public void setCaseNum(String caseNum) {
		this.caseNum = caseNum;
	}

	public String getLotNum() {
		return lotNum;
	}

	public void setLotNum(String lotNum) {
		this.lotNum = lotNum;
	}

	public String getSampleInd() {
		return sampleInd;
	}

	public void setSampleInd(String sampleInd) {
		this.sampleInd = sampleInd;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	
	public Integer getCaseId() {
		return caseId;
	}

	public void setCaseId(Integer caseId) {
		this.caseId = caseId;
	}

	public Integer getRequestId() {
		return requestId;
	}

	public void setRequestId(Integer requestId) {
		this.requestId = requestId;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public Date getLotExpDate() {
		return lotExpDate;
	}

	public void setLotExpDate(Date lotExpDate) {
		this.lotExpDate = lotExpDate;
	}

	public Integer getListedness() {
		return listedness;
	}

	public void setListedness(Integer listedness) {
		this.listedness = listedness;
	}

	public Integer getSeriousness() {
		return seriousness;
	}

	public void setSeriousness(Integer seriousness) {
		this.seriousness = seriousness;
	}

	public String getLabTestSite() {
		return labTestSite;
	}

	public void setLabTestSite(String labTestSite) {
		this.labTestSite = labTestSite;
	}

	public String getLabTestSiteNum() {
		return labTestSiteNum;
	}

	public void setLabTestSiteNum(String labTestSiteNum) {
		this.labTestSiteNum = labTestSiteNum;
	}

	public String getInitiatorName() {
		return initiatorName;
	}

	public void setInitiatorName(String initiatorName) {
		this.initiatorName = initiatorName;
	}

	public String getInitiatorEmail() {
		return initiatorEmail;
	}

	public void setInitiatorEmail(String initiatorEmail) {
		this.initiatorEmail = initiatorEmail;
	}

	public String getInitiatorReason() {
		return initiatorReason;
	}

	public void setInitiatorReason(String initiatorReason) {
		this.initiatorReason = initiatorReason;
	}

	public Date getInitiatorDate() {
		return initiatorDate;
	}

	public void setInitiatorDate(Date initiatorDate) {
		this.initiatorDate = initiatorDate;
	}

	public String getInitiatorNote() {
		return initiatorNote;
	}

	public void setInitiatorNote(String initiatorNote) {
		this.initiatorNote = initiatorNote;
	}

	public String getComplaintDescr() {
		return complaintDescr;
	}

	public void setComplaintDescr(String complaintDescr) {
		this.complaintDescr = complaintDescr;
	}

	public Date getStatusDate() {
		return statusDate;
	}

	public void setStatusDate(Date statusDate) {
		this.statusDate = statusDate;
	}

	public String getStatusReason() {
		return statusReason;
	}

	public void setStatusReason(String statusReason) {
		this.statusReason = statusReason;
	}

	public String getCumSpecResult() {
		return cumSpecResult;
	}

	public void setCumSpecResult(String cumSpecResult) {
		this.cumSpecResult = cumSpecResult;
	}

	public String getEvents() {
		return events;
	}

	public void setEvents(String events) {
		this.events = events;
	}

	public String getCountry() {
		return country;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public Date getInitReptDate() {
		return initReptDate;
	}

	public void setInitReptDate(Date initReptDate) {
		this.initReptDate = initReptDate;
	}

	public String getClassification() {
		return classification;
	}

	public void setClassification(String classification) {
		this.classification = classification;
	}

	public Integer getProductId() {
		return productId;
	}

	public void setProductId(Integer productId) {
		this.productId = productId;
	}

	public String getXNumber() {
		return xNumber;
	}

	public void setXNumber(String xNumber) {
		this.xNumber = xNumber;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

	@Override
	public boolean equals(Object o) {
		return EqualsBuilder.reflectionEquals(this, o, new String[] { "caseNum", "lotNum", "sampleInd", "status" });
	}

	@Override
	public int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this,
				new String[] { "caseNum", "lotNum", "sampleInd", "status" });
	}
}
